// import router,{asyncRoutes } from '@/router';
// import { useAuthStore } from "@/stores/authStore";
// const store = useAuthStore();

// // 动态添加路由
// export function addRoutesBasedOnPermissions() {
//   const routesToAdd = [];
//   const permissions = store.userPermissions; // 假设你的 store 中有一个 userPermissions 属性来存储用户权限信息

//   asyncRoutes.forEach(route => {
//     // 检查是否有权限访问该路由
//     if (hasPermission(permissions, route)) {
//       routesToAdd.push(route);
//     }
//   });

//   routesToAdd.forEach(route => {
//     router.addRoute(route);
//   });
// }

// // 检查用户是否有权限访问该路由
// function hasPermission(permissions, route) {
//   if (route.meta && route.meta.roles) {
//     return permissions.some(role => route.meta.roles.includes(role));
//   } else {
//     return true;
//   }
// }


// import router, { asyncRoutes } from '@/router';
// import { useAuthStore } from '@/stores/authStore';

// // 动态添加路由
// export function addRoutesBasedOnPermissions() {
//   const store = useAuthStore(); // 确保在函数内初始化 store
//   const routesToAdd = [];
//   const permissions = store.userPermissions; // 获取用户权限

//   asyncRoutes.forEach(route => {
//     // 检查是否有权限访问该路由
//     if (hasPermission(permissions, route)) {
//       routesToAdd.push(route);
//     }
//   });

//   routesToAdd.forEach(route => {
//     router.addRoute(route);
//   });

//   console.log('动态添加的路由:', routesToAdd);
//   console.log('获取用户权限:', permissions);
//   console.log('asyncRoutes:', asyncRoutes);
// }

// // 检查用户是否有权限访问该路由
// function hasPermission(permissions, route) {
//   if (route.meta && route.meta.roles) {
//     return permissions.some(role => route.meta.roles.includes(role));
//   } else {
//     return true;
//   }
// }



import router, { asyncRoutes } from '@/router';
import { useAuthStore } from "@/stores/authStore";

export function addRoutesBasedOnPermissions() {
  const store = useAuthStore();
  const permissions = store.userPermissions;
  console.log('当前用户权限:', permissions); // 打印当前用户权限

 // 获取当前路由列表
 const currentRoutes = router.getRoutes().map(route => route.path)

 // 过滤出需要添加的路由，确保没有重复添加
 const routesToAdd = asyncRoutes.filter(route => {
   return hasPermission(permissions, route) && !currentRoutes.includes(route.path)
 })

  console.log('要添加的路由:', routesToAdd); // 打印要添加的路由

  routesToAdd.forEach(route => {
    router.addRoute(route);
  });

  console.log('路由添加后:', router.getRoutes()); // 打印当前路由列表
  router.options.routes.push(...routesToAdd)
}

function hasPermission(permissions, route) {
  if (route.meta && route.meta.roles) {
    return permissions.some(role => route.meta.roles.includes(role));
  }
  return true;
}
